﻿using Cms.Core.Infrastructure.Dependency;
using System;
using System.Collections.Generic;
using System.Text;

namespace Cms.Core.Infrastructure.Log
{
    /// <summary>
    /// 日志接口
    /// </summary>
    public interface ILoggerHelper: ISingletonDependency
    {
        ///// <summary>
        ///// 错误信息
        ///// </summary>
        ///// <param name="message">message</param>
        ///// <param name="exception">ex</param>
        void Error<TType>(object message) where TType : Type;



        ///// <summary>
        ///// 错误信息
        ///// </summary>
        ///// <param name="source">source</param>
        ///// <param name="message">message</param>
        ///// <param name="exception">ex</param>
        void Error<TType>(object message, Exception exception) where TType : Type;

        ///// <summary>
        ///// 错误信息
        ///// </summary>
        ///// <param name="source">source</param>
        ///// <param name="message">message</param>
        ///// <param name="exception">ex</param>
        void Error(Type type, object message, Exception exception);



        ///// <summary>
        ///// 错误信息
        ///// </summary>
        ///// <param name="source">source</param>
        ///// <param name="message">message</param>
        ///// <param name="exception">ex</param>
        void Error(object source, object message, Exception exception);

        ///// <summary>
        ///// 错误信息
        ///// </summary>
        ///// <param name="source">source</param>
        ///// <param name="message">message</param>
        void Error(object source, object message);

        ///// <summary>
        ///// 输出错误信息
        ///// </summary>
        ///// <param name="throwMsg">throwMsg</param>
        ///// <param name="exception">ex</param>
        string WriteLog(string throwMsg, Exception ex);

        string WriteLog(Exception ex);
    }
}
